/*
 * @Author: 鱿鱼溪学院
 * @Date: 2025-05-04 11:24:05
 * @LastEditTime: 2025-07-28 01:02:50
 * @LastEditors: 鱿鱼溪学院
 * @Description:
 * @FilePath: \yyx-web\src\api\sms.ts
 * Copyright 鱿鱼溪学院 by edu v1.0
 * 天道酬勤
 */
import http from '@/utils/http'

//统一接口管理
enum API {
  SENDSMS_URL = '/aa/sms/sendSms'
}

export interface phoneLoginParams {
  phoneNumbers: string
}

export interface phoneLoginResponse {
  code: number
  // code: number
  // data: {
  //   token: string
  // }
  // message?: string
}

/**
 * 发送短信验证码并获取登录 Token
 * 注意：此接口应限制调用频率以防止刷短信攻击
 * @param data - 包含手机号码的请求参数
 * @returns Promise<phoneLoginResponse>
 * @throws Error - 请求失败时抛出错误
 */
export async function sendSms(
  data: phoneLoginParams
): Promise<phoneLoginResponse> {
  // 参数校验
  if (!data || !data.phoneNumbers) {
    throw new Error('手机号不能为空')
  }

  const phone = data.phoneNumbers.trim()
  if (!/^1\d{10}$/.test(phone)) {
    throw new Error('手机号格式不正确')
  }

  try {
    return await http({
      url: API.SENDSMS_URL,
      method: 'post',
      data: { ...data, phoneNumbers: phone }
    })
  } catch (error) {
    console.error('发送短信验证码失败:', error)
    throw new Error('网络异常，请稍后再试')
  }
}
